package com.projles;

import java.util.Random;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.projles.util.Player;

public class HomeActivity extends Activity implements OnClickListener{

	private Button btJogar;
	private ImageView btOpcoes;
	private Button btAjuda;
	private Button btRecordes;
	private TextView btSite;
	
	private Player player;
	
	//criar uma const para cada minigame criado
	private final int MINIGAME_CORES = 0;
	private final int MINIGAME_ANIMAIS = 1;
	
	private int[] listaMinigames = new int[] {
			  MINIGAME_CORES, 
			  MINIGAME_ANIMAIS};

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.home);

		player = Player.getPlayer(this);

		btJogar = (Button) findViewById(R.id.bt_jogar);
		btJogar.setOnClickListener(this);

		btOpcoes = (ImageView) findViewById(R.id.bt_opcoes);
		btOpcoes.setOnClickListener(this);

		btAjuda = (Button) findViewById(R.id.bt_ajuda);
		btAjuda.setOnClickListener(this);
		
		btRecordes = (Button) findViewById(R.id.bt_recordes);
		btRecordes.setOnClickListener(this);
		
		btSite = (Button) findViewById(R.id.bt_site);
        btSite.setOnClickListener(this);
		
	}

	@Override
	public void onClick(View v) {

		player.click();
		switch (v.getId()) {
		case R.id.bt_jogar:
			escolherJogo();
			break;
		case R.id.bt_opcoes:
			iniciaOpcoes();
			break;
		case R.id.bt_ajuda:
			iniciarAjuda();
			break;
		case R.id.bt_recordes:
			iniciarRecordes();
			break;
		case R.id.bt_site:
			iniciarSobre();
			break;
		}
	}


	private void iniciarSobre() {
		Intent i = new Intent(this, SobreActivity.class);
		startActivity(i);
	}
	
	private void iniciarAjuda() {
		
		final String jogoCores = getResources().getString(R.string.jogo_cores);
		final String jogoAnimais = getResources().getString(R.string.jogo_animais);

		final String[] items = {jogoCores, jogoAnimais};
		
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(getResources().getString(R.string.titulo_escolha_jogo));
		builder.setItems(items, new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int item) {

				if(items[item].equals(jogoCores)) {
					iniciaAjudaCores();
				}
				if (items[item].equals(jogoAnimais)) {
					iniciaAjudaAnimais();
				}


			}

		});
		AlertDialog alert = builder.create();
		alert.show();		
	}

	
	private void iniciaAjudaAnimais() {
		Intent i = new Intent(this, AjudaActivity.class);
		i.putExtra("qual_jogo", "animais");
		startActivity(i);
	}
	
	private void iniciaAjudaCores() {
		Intent i = new Intent(this, AjudaActivity.class);
		i.putExtra("qual_jogo", "cores");
		startActivity(i);
	}
	
	
	private void escolherJogo() {
		
		
		final String jogoCores = getResources().getString(R.string.jogo_cores);
		final String jogoAnimais = getResources().getString(R.string.jogo_animais);
		final String jogoAleatorio = getResources().getString(R.string.jogo_aleatorio);

		final String[] items = {jogoCores, jogoAnimais, jogoAleatorio};

		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(getResources().getString(R.string.titulo_escolha_jogo));
		builder.setItems(items, new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int item) {

				if(items[item].equals(jogoCores)) {
					iniciaCores();
				}
				if (items[item].equals(jogoAnimais)) {
					iniciaAnimais();
				}
				if (items[item].equals(jogoAleatorio)) {
					rodaGameAleatoriamente();
				}


			}
		});
		AlertDialog alert = builder.create();
		alert.show();
	}

	private void rodaGameAleatoriamente() {

		Random r = new Random();
		
		int gameEscolhido = r.nextInt(listaMinigames.length);
		
		switch (gameEscolhido) {

		case MINIGAME_CORES:
			iniciaCores();
			break;
		
		case MINIGAME_ANIMAIS:
			iniciaAnimais();
			break;
		}
	}
	
	private void iniciarRecordes() {
		Intent i = new Intent(this, RecordesActivity.class);
		startActivity(i);
	}

	private void iniciaOpcoes() {
		Intent i = new Intent(this, OpcoesActivity.class);
		startActivity(i);
	}

	private void iniciaCores() {
		Intent i = new Intent(this, SinestesiaActivity.class);
		startActivity(i);
	}

	private void iniciaAnimais() {
		Intent i = new Intent(this, AnimaisActivity.class);
		startActivity(i);
	}
	
	
}



